import CryptoJs from 'crypto-js'
// 登录加密使用
export function getAesString (password) {
  var key = '504a323032315553455250574444504a323032315553455250574444687a666a'
  key = CryptoJs.enc.Hex.parse(key)
  var enc = CryptoJs.AES.encrypt(password, key, {
    mode: CryptoJs.mode.ECB,
    padding: CryptoJs.pad.Pkcs7
  })
  return enc.ciphertext.toString()
}


// 级联选择器回显
export function echo (val) {
  let arr = []// 定义一个空数组
  const oiptions = JSON.parse(sessionStorage.getItem(`units`))// 拿到的所有数据集合（树状）
  this.$nextTick(() => {
    if (!oiptions && oiptions.legth <= 0) return
    fun(oiptions) // 调用封装好的回显函数
    let out = false// 定义一个标识（是否找到对应的id）
    function fun(childrenArr) { // 封装的回显函数
      let bg = 0 // 定义一个标杆（标识循环到当前数组的第几条）
      for (const item of childrenArr) {
        if (item.officeId === val) { // 判断所在数组（层级），是否有与之匹配的id
          arr.push(item.officeId)// 存在则返回其id
          out = true// 存在就将标识设置为true
          return// 递归出口（出口1）
        } else if (// 判断id不匹配的层级是否具有下级目录（children）
          item.childrens &&
              item.childrens.length > 0
        ) {
          arr.push(item.officeId)
          fun(item.childrens)// 存在下级目录就将下一级目录回调
        }
        bg++
        if (out) return// 如果找到对应的id 就执行返回 （出口2）
        if (bg === childrenArr.length && arr && arr.length > 0) {
          arr = []// 如果在最后一个数组对象都没有找到对应ID 那么就清空数组
        }
      }
    }
  })
  return arr
}
